package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import modelo.Cliente;
import modelo.Pintura;

public class PinturaDao {
	
private Connection conexao;
	
	public PinturaDao(Connection con) throws ClassNotFoundException {
		this.conexao = con;		
	}
	
	public Pintura getPintura(int codigo) {		
		Pintura p = null;		
		PreparedStatement stm = null;
		try {
			stm = conexao.prepareStatement("select * from pintura " +  
										   "where codigo = ?");
			stm.setInt(1, codigo);			
			ResultSet rs = stm.executeQuery();
			while (rs.next()) {
				p = setDados(rs);
			}						
		} catch (SQLException sqlEx) {
			sqlEx.printStackTrace();
		}
		return p;		
	}
	
	public Pintura getPintura(String nome) {		
		Pintura p = null;		
		PreparedStatement stm = null;
		try {
			stm = conexao.prepareStatement("select * from pintura " +  
										   "where nome = ?");
			stm.setString(1, nome);			
			ResultSet rs = stm.executeQuery();
			while (rs.next()) {
				p = setDados(rs);
			}						
		} catch (SQLException sqlEx) {
			sqlEx.printStackTrace();
		}
		return p;		
	}
	
	public List<Pintura> getPintura() {		
		Pintura p = null;		
		PreparedStatement stm = null;
		List<Pintura> listaPinturas = null;
		try {
			stm = conexao.prepareStatement("select * from pintura");						
			ResultSet rs = stm.executeQuery();
			while (rs.next()) {
				p = setDados(rs);
				if(!(p == null) ) {
					if(listaPinturas == null) {
						listaPinturas = new ArrayList<Pintura>();
					}
				listaPinturas.add(p);
				}						
			}						
		} catch (SQLException sqlEx) {
			sqlEx.printStackTrace();
		}
		return listaPinturas;		
	}	
	
	private Pintura setDados(ResultSet rs) throws SQLException{
		Pintura p = new Pintura();
		p.setCdPintura(rs.getInt("codigo"));
		p.setDsPintura(rs.getString("nome"));	
		return p;		
	}
}
